package com.guigu.auth.service;

import com.guigu.auth.entity.AuthMenu;
import com.baomidou.mybatisplus.extension.service.IService;
import com.guigu.auth.entity.dto.AuthMenuDTO;
import com.guigu.auth.entity.vo.AuthMenuRouterVO;
import com.guigu.auth.entity.vo.AuthMenuVO;
import com.guigu.tms.result.R;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Set;

/**
 * <p>
 * 菜单 服务类
 * </p>
 *
 * @author TaoLong
 * @since 2021-12-06
 */
public interface AuthMenuService extends IService<AuthMenu> {

    /**
     * 根据岗位Id查询出对应的菜单集合
     *
     * @param stationId
     * @return
     */
    public R<Set<AuthMenu>> queryMenuBy(String stationId);

    /**
     * 查询菜单信息
     * @return
     */
    public R<List<AuthMenuVO>> queryAllMenu();


    /**
     * 查询路由表中的菜单信息
     *
     * @return
     * @param request
     */
    public R<List<AuthMenuRouterVO>> queryAllMenuRouter(HttpServletRequest request);

    /**
     * 添加菜单信息
     *
     * @param authMenuDTO
     * @return
     */
    public R addAuthMenu(AuthMenuDTO authMenuDTO);

    /**
     * 根据岗位ID查询对应的菜单信息
     *
     * @param stationId
     * @return
     */
    public R<Set<Long>> queryMenuBasedOnStationId(String stationId);

    /**
     * 根据角色Id查询对应的菜单信息
     *
     * @param roleId
     * @return
     */
    public R<List<Long>> queryMenuBaseOnRoleId(String roleId);


}
